At the end of BaseAppView._clearAnimateLater(), the '_grid' actor's opacity is
set to 255. As it turns out, _clearAnimateLater() is called, among others, by
vfunc_unmap(). However, unmapping is part of the destruction process, and at
the time it is called, '_grid' is already destroying, which makes GJS complain
about accessing an invalid object.
Don't change opacity on BaseAppView._clearAnimateLater(), and instead move it
to the couple of places outside vfunc_unmap() that call it.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1447
this.disconnect(this._viewLoadedHandlerId);
this._viewLoadedHandlerId = 0;
}
- this._grid.opacity = 255;
}
animate(animationDirection, onComplete) {
}
this._clearAnimateLater();
+ this._grid.opacity = 255;
if (animationDirection == IconGrid.AnimationDirection.IN) {
const doSpringAnimationLater = laterType => {
this._viewLoadedHandlerId = this.connect('view-loaded',
() => {
this._clearAnimateLater();
+ this._grid.opacity = 255;
doSpringAnimationLater(Meta.LaterType.BEFORE_REDRAW);
});
}